package com.xuecheng.media.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xuecheng.api.media.model.dto.MediaDTO;
import com.xuecheng.api.media.model.qo.QueryMediaModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.common.domain.response.RestResponse;
import com.xuecheng.media.entity.Media;

/**
 * 媒资内容管理
 *
 * @author lily
 * @date 2021/12/15
 */
public interface MediaService extends IService<Media> {


    /**
     * 根据媒资名称模糊进行查询，根据媒资的类型进行查询
     *
     * @param  pageParams 分页数据
     * @param  model      查询数据
     * @param  companyId  公司id
     * @return
     * @author Lily
     * @date 2021/12/15 16:07
     * @paramType [java.lang.String, java.lang.String]
     * @description
     */
    PageVO queryMediaList(PageRequestParams pageParams, QueryMediaModel model, Long companyId);


    /**
     * 保存媒资信息
     * @param dto
     * @return
     */
    MediaDTO createMedia(MediaDTO dto);


    /**
    * @author Lily
    * @date 2021/12/19 21:50
    * @paramType [com.xuecheng.common.domain.page.PageRequestParams, com.xuecheng.api.media.model.qo.QueryMediaModel, java.lang.Long]
     * @param params 分页参数，当前页、每页条数
     * @param model 返回的数据
    * @param companyId 公司 id
    * @return com.xuecheng.common.domain.page.PageVO
    * @description 机构分页查询媒资信息
    */
    PageVO queryMedia(PageRequestParams params, QueryMediaModel model, Long companyId);


    /**
    * @author Lily
    * @date 2021/12/20 19:33
    * @paramType [java.lang.Long, java.lang.Long]
    * @param mediaId 媒资id
    * @param companyId 公司id
    * @return java.lang.String
    * @description 获取机构或平台预览课程内容
    */
    String getVODUrl(Long mediaId, Long companyId);


    /**
     * 逻辑删除媒资信息
     *
     * @param mediaId 媒资Id
     * @param companyId 公司id
     * @author Lily
     * @date 2021/12/15 19:55
     * @paramType [java.lang.Long]
     * @description
     */
    void removeMedia(Long mediaId, Long companyId);

    
    /**
    * @author Lily
    * @date 2021/12/20 22:22
    * @paramType [java.lang.Long] 
    * @param mediaId 
    * @return com.xuecheng.common.domain.response.RestResponse
    * @description 根据id查询媒资信息-远端服务调用
    */
    RestResponse getById4Service(Long mediaId);
}
